package com.hotel.tv.constants;

import com.autumn.domain.values.ConstantField;
import com.autumn.domain.values.IntegerConstantItemValue;

import java.util.Collection;
import java.util.Map;

/**
 * 文件附件类型常量
 * <p>
 * </p>
 *
 * @description TODO
 * @author: 老码农
 * @create: 2020-04-08 16:36
 **/
public class FileUploadAttachmentTypeConstant {

    /**
     * 公共字典
     */
    @ConstantField(name = "公共字典")
    public static final int COMMON_DATA_DICTIONARY = 23;

    /**
     * 员工信息
     */
    @ConstantField(name = "员工信息")
    public static final int EMP_INFO = 300;



    private static final Map<Integer, IntegerConstantItemValue> NAME_MAP;

    static {
        NAME_MAP = IntegerConstantItemValue.generateMap(CommonDictionaryTypeConstant.class);
    }

    /**
     * 是否存在
     *
     * @param value 值
     * @return
     */
    public static boolean exist(Integer value) {
        if (value == null) {
            return false;
        }
        return NAME_MAP.containsKey(value);
    }

    /**
     * 获取名称
     *
     * @param value 值
     * @return
     */
    public static String getName(Integer value) {
        IntegerConstantItemValue item = NAME_MAP.get(value);
        if (item == null) {
            return "";
        }
        return item.getName();
    }

    /**
     * 获取项目
     *
     * @param value 值
     * @return
     */
    public static IntegerConstantItemValue getItem(Integer value) {
        return NAME_MAP.get(value);
    }

    /**
     * 项目集合
     *
     * @return
     */
    public static Collection<IntegerConstantItemValue> items() {
        return IntegerConstantItemValue.sorted(NAME_MAP.values());
    }
}
